package com.token.service;

import java.util.Objects;

/**
 * 可以接受一个泛型T对象，返回一个泛型R对象，即参数类型和返回类型可以不同
 *
 * @auther: henriy
 * @Date: 2023/12/29
 */
@FunctionalInterface
public interface Function<T, R> {

    R apply(T t);

    default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {
        Objects.requireNonNull(after);
        return (T t) -> after.apply(apply(t));
    }

}
